/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.taobao.ibatiside.model.configv2;

import org.eclipse.emf.common.util.EList;

import org.eclipse.emf.ecore.EObject;

import org.eclipse.emf.ecore.util.FeatureMap;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Sql Map Config Type</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link org.taobao.ibatiside.model.configv2.SqlMapConfigType#getGroup <em>Group</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.configv2.SqlMapConfigType#getProperties <em>Properties</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.configv2.SqlMapConfigType#getSettings <em>Settings</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.configv2.SqlMapConfigType#getResultObjectFactory <em>Result Object Factory</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.configv2.SqlMapConfigType#getTypeAlias <em>Type Alias</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.configv2.SqlMapConfigType#getTypeHandler <em>Type Handler</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.configv2.SqlMapConfigType#getTransactionManager <em>Transaction Manager</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.configv2.SqlMapConfigType#getSqlMap <em>Sql Map</em>}</li>
 * </ul>
 * </p>
 *
 * @see org.taobao.ibatiside.model.configv2.Configv2Package#getSqlMapConfigType()
 * @model extendedMetaData="name='sqlMapConfig_._type' kind='elementOnly'"
 * @generated
 */
public interface SqlMapConfigType extends EObject {
	/**
	 * Returns the value of the '<em><b>Group</b></em>' attribute list.
	 * The list contents are of type {@link org.eclipse.emf.ecore.util.FeatureMap.Entry}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Group</em>' attribute list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Group</em>' attribute list.
	 * @see org.taobao.ibatiside.model.configv2.Configv2Package#getSqlMapConfigType_Group()
	 * @model unique="false" dataType="org.eclipse.emf.ecore.EFeatureMapEntry" many="true"
	 *        extendedMetaData="kind='group' name='group:0'"
	 * @generated
	 */
	FeatureMap getGroup();

	/**
	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
	 * The list contents are of type {@link org.taobao.ibatiside.model.configv2.PropertiesType}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Properties</em>' containment reference list.
	 * @see org.taobao.ibatiside.model.configv2.Configv2Package#getSqlMapConfigType_Properties()
	 * @model containment="true" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='properties' namespace='##targetNamespace' group='group:0'"
	 * @generated
	 */
	EList<PropertiesType> getProperties();

	/**
	 * Returns the value of the '<em><b>Settings</b></em>' containment reference list.
	 * The list contents are of type {@link org.taobao.ibatiside.model.configv2.SettingsType}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Settings</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Settings</em>' containment reference list.
	 * @see org.taobao.ibatiside.model.configv2.Configv2Package#getSqlMapConfigType_Settings()
	 * @model containment="true" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='settings' namespace='##targetNamespace' group='group:0'"
	 * @generated
	 */
	EList<SettingsType> getSettings();

	/**
	 * Returns the value of the '<em><b>Result Object Factory</b></em>' containment reference list.
	 * The list contents are of type {@link org.taobao.ibatiside.model.configv2.ResultObjectFactoryType}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Result Object Factory</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Result Object Factory</em>' containment reference list.
	 * @see org.taobao.ibatiside.model.configv2.Configv2Package#getSqlMapConfigType_ResultObjectFactory()
	 * @model containment="true" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='resultObjectFactory' namespace='##targetNamespace' group='group:0'"
	 * @generated
	 */
	EList<ResultObjectFactoryType> getResultObjectFactory();

	/**
	 * Returns the value of the '<em><b>Type Alias</b></em>' containment reference list.
	 * The list contents are of type {@link org.taobao.ibatiside.model.configv2.TypeAliasType}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Type Alias</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Type Alias</em>' containment reference list.
	 * @see org.taobao.ibatiside.model.configv2.Configv2Package#getSqlMapConfigType_TypeAlias()
	 * @model containment="true" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='typeAlias' namespace='##targetNamespace' group='group:0'"
	 * @generated
	 */
	EList<TypeAliasType> getTypeAlias();

	/**
	 * Returns the value of the '<em><b>Type Handler</b></em>' containment reference list.
	 * The list contents are of type {@link org.taobao.ibatiside.model.configv2.TypeHandlerType}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Type Handler</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Type Handler</em>' containment reference list.
	 * @see org.taobao.ibatiside.model.configv2.Configv2Package#getSqlMapConfigType_TypeHandler()
	 * @model containment="true" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='typeHandler' namespace='##targetNamespace' group='group:0'"
	 * @generated
	 */
	EList<TypeHandlerType> getTypeHandler();

	/**
	 * Returns the value of the '<em><b>Transaction Manager</b></em>' containment reference list.
	 * The list contents are of type {@link org.taobao.ibatiside.model.configv2.TransactionManagerType}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Transaction Manager</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Transaction Manager</em>' containment reference list.
	 * @see org.taobao.ibatiside.model.configv2.Configv2Package#getSqlMapConfigType_TransactionManager()
	 * @model containment="true" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='transactionManager' namespace='##targetNamespace' group='group:0'"
	 * @generated
	 */
	EList<TransactionManagerType> getTransactionManager();

	/**
	 * Returns the value of the '<em><b>Sql Map</b></em>' containment reference list.
	 * The list contents are of type {@link org.taobao.ibatiside.model.configv2.SqlMapType}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Sql Map</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Sql Map</em>' containment reference list.
	 * @see org.taobao.ibatiside.model.configv2.Configv2Package#getSqlMapConfigType_SqlMap()
	 * @model containment="true" required="true" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='sqlMap' namespace='##targetNamespace' group='group:0'"
	 * @generated
	 */
	EList<SqlMapType> getSqlMap();

} // SqlMapConfigType
